(1) Field of the Invention
The invention concerns a peripheral interface with a control unit, which receives a data stream from a control computer and puts it out sequentially to a peripheral device, a method for transfer of a data stream via a peripheral interface, wherein a data stream is received from a control computer and preferably output sequentially to a peripheral device, and a data stream containing control data for a peripheral device.
(2) Description of Related Art Including Information Disclosed Under 37 CFR 1.97 and 1.98
A peripheral interface is used to communicate between a control computer and one or more peripheral devices by electronic data transfer. In the prior art, peripheral devices are connected via standard interfaces, such as “USB” (“Universal Serial Bus”), “Ethernet” (IEEE 802) or “Firewire” (IEEE 1394), which provide a separate bus on the peripheral side, while they typically communicate with the control computer by one of its system buses. If a peripheral device is supposed to be controlled by the peripheral interface, the control computer or, more accurately, its central processing unit (CPA) will generate, for example, a stream of control data, which is deposited in the working memory (“random access memory (RAM)”) of the control computer. The transfer to the peripheral interface is generally controlled by driver software, executed by the central processing unit, which initiates accesses of the interface component to the working memory. Access to the working memory occurs in cycles by means of direct memory access (DMA) via the system bus of the control computer. For this purpose, the peripheral interface has a DMA controller. Typically, one data block is transmitted by the DMA controller in each DMA cycle. The size of a DMA cycle as a rule corresponds to a single memory page of the working memory.
The driver software reports each DMA cycle for transfer in the DMA controller of the peripheral device. The control computer then executes other software, such as an application program with user interaction. It later receives a confirmation of the complete transfer in the form of an interrupt request (IRQ). From the interrupt request onward, the regular program execution is interrupted and in its place the driver software is executed, which must continue the data transfer by triggering the next DMA cycle. In order to continually achieve a high data transfer rate, a very short response time of the driver software to such an interrupt request is required, so that the next DMA cycle can be triggered at the proper time. In particular, in a real-time-critical system, a maximum response time must be obeyed in order to prevent a gap in the data transfer. If the control computer is not using a real-time-capable operating system, however, a deterministic processing of an interrupt request for a DMA cycle is not possible. Here, the response time to an interrupt request can increase almost arbitrarily when the system workload increases or when there are many DMA transfer processes at the same time. The number of simultaneous DMA transfer processes increases with the data transfer rate to be achieved and is furthermore determined by the size of the data amount being transmitted. If the response time of the central processing unit exceeds a critical value, there will be interruptions in the data stream.
Yet many peripheral devices depend on a continual, or gap-free data stream. For example, the scanner of a laser scanning microscope (LSM) must be permanently supplied with control data for the movement of one or more galvanometer mirrors while taking a picture. This is typically done by generating the control data stream block by block (corresponding to time intervals) and sending it from the control computer to the scanner. In this way, for example, it is possible to change the scanning movement in the short term, even while taking a picture. But when the data stream is interrupted, each galvanometer mirror carries out a free oscillatory movement from its current movement state. Depending on the momentary deflection, velocity and acceleration of the particular mirror at the time of the data stream interruption, damage can occur to the mirror (e.g., by excessive rotation) or the specimen (e.g., by overexposure).
In the prior art, thus, the disadvantage of a costly real-time operating system must be used on the control computer to prevent interruptions in the data stream.
The problem on which the present invention is based is to improve a peripheral device, a data stream, and a method of the aforementioned kind so that a data stream without gaps can be provided for a peripheral device, especially for a non-real-time-capable operating system of the control computer.